package info.motteke.mixivoice4j.http.json;

import java.io.Serializable;

import net.arnx.jsonic.JSONHint;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * JSONリクエストで発生したエラーです。
 *
 * @author Y.Wakamatsu
 */
public abstract class JsonError {

    /** ロガーです。 */
    private static final Log logger = LogFactory.getLog(JsonError.class);

    /**
     * 現在謎のデータです。
     * 調査中全部nullなので何者か分からない。。。
     */
    private String data;

    /** エラー内容を表す文字列です。 */
    private String message;

    /** エラーを表すコードです。HTTP通信のエラーコードに対応しているようです。 */
    private int code;

    /**
     * エラーに付加されたデータを返します。
     */
    @JSONHint(type = Serializable.class)
    public String getData() {
        return data;
    }

    /**
     * エラーに付加されたデータを設定します。
     */
    @JSONHint(type = Serializable.class)
    public void setData(String data) {
        this.data = data;
        if(data != null){
            logger.info("JsonError.data : " + data);
        }
    }

    /**
     * エラーの内容を表す文字列を返します。
     */
    public String getMessage() {
        return message;
    }

    /**
     * エラーの内容を表す文字列を設定します。
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * エラーを表すコードを返します。
     */
    public int getCode() {
        return code;
    }

    /**
     * エラーを表すコードを設定します。
     */
    public void setCode(int code) {
        this.code = code;
    }
}